<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Turtle DB: ca.uqac.dim.ddb.Table Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Turtle DB
   
   </div>
   <div id="projectbrief">A mini DDBMS</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">ca.uqac.dim.ddb.Table Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="ca::uqac::dim::ddb::Table" --><!-- doxytag: inherits="ca::uqac::dim::ddb::Relation" --><div class="dynheader">
Inheritance diagram for ca.uqac.dim.ddb.Table:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.png" usemap="#ca.uqac.dim.ddb.Table_map" alt=""/>
  <map id="ca.uqac.dim.ddb.Table_map" name="ca.uqac.dim.ddb.Table_map">
<area href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html" alt="ca.uqac.dim.ddb.Relation" shape="rect" coords="0,0,154,24"/>
</map>
 </div></div>

<p><a href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a258f4c7f2a49092d2dbead79ae15e3e3">Table</a> (String s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#ad9b9e92fad8e5c1438a7316d94b6ce8f">Table</a> (<a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_schema.html">Schema</a> sch)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a3026869a08310b7964bc17a70925758c">setName</a> (String name)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#acb3ccfb19a86d19a52501d685a4e89d5">getName</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_schema.html">Schema</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a1f0d67156e7ca206c1fe2295626ee110">getSchema</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#ab940367c81c807d67ae138c0506e1331">put</a> (<a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_tuple.html">Tuple</a> t)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_tuple.html">Tuple</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#ab3c489022109249a7aade1128e2029a5">internalNext</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#aa82a7c4bd9caed8ca77fb786bc20c167">remove</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a57a8a7fdb3be3d0ec2fea534b4043548">reset</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a007b184b67c1648b715e101cda69b6c0">accept</a> (<a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_query_visitor.html">QueryVisitor</a> v)  throws QueryVisitor.VisitorException   </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a9b9f6caa942ce0519f8ab1cb56a8b714">copy</a> (<a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html">Relation</a> r)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a00b4cbf2a0ad0193146cab525da238e8">getCardinality</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a9f45a1734d12765f33f5f4dfd4b07528">contains</a> (<a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_tuple.html">Tuple</a> tup)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a8561aa22cd3f357b3de1af0d778ff942">tupleCount</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#acaa75d3e42fbc4dd407570fae6dff13e">Table</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_tuple.html">Tuple</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#abf9ac017a4f97f74750a8fd2fe2f7415">m_tuples</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_schema.html">Schema</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#aec20a839c2e544d0b09ad6fcb0e18d32">m_schema</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a9157f315005807e1d355e71488f7c9f9">m_cursor</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a52de849d32735588c66867eea01f1214">m_name</a></td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acaa75d3e42fbc4dd407570fae6dff13e"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::Table" ref="acaa75d3e42fbc4dd407570fae6dff13e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#acaa75d3e42fbc4dd407570fae6dff13e">ca.uqac.dim.ddb.Table.Table</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Empty constructor. Should only be called from another constructor. </p>

</div>
</div>
<a class="anchor" id="a258f4c7f2a49092d2dbead79ae15e3e3"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::Table" ref="a258f4c7f2a49092d2dbead79ae15e3e3" args="(String s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#acaa75d3e42fbc4dd407570fae6dff13e">ca.uqac.dim.ddb.Table.Table</a> </td>
          <td>(</td>
          <td class="paramtype">String&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Builds a table from a character string. The string must follow these conventions: </p>
<ul>
<li>
Any leading or trailing whitespace on a line is ignored </li>
<li>
Empty lines and lines starting with <code>#</code> or <code>---</code> are ignored </li>
<li>
The first non-ignored line is a comma- or space-separated list of attribute names </li>
<li>
The remaining non-ignored lines are comma- or space-separated list of attribute values, making a tuple </li>
</ul>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad9b9e92fad8e5c1438a7316d94b6ce8f"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::Table" ref="ad9b9e92fad8e5c1438a7316d94b6ce8f" args="(Schema sch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#acaa75d3e42fbc4dd407570fae6dff13e">ca.uqac.dim.ddb.Table.Table</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_schema.html">Schema</a>&#160;</td>
          <td class="paramname"><em>sch</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Creates an empty table with given schema </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sch</td><td>The table's schema </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a007b184b67c1648b715e101cda69b6c0"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::accept" ref="a007b184b67c1648b715e101cda69b6c0" args="(QueryVisitor v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a007b184b67c1648b715e101cda69b6c0">ca.uqac.dim.ddb.Table.accept</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_query_visitor.html">QueryVisitor</a>&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td>  throws QueryVisitor.VisitorException   <code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#a6743aca7ee7eb1b1cb0f2511043723f7">ca.uqac.dim.ddb.Relation</a>.</p>

</div>
</div>
<a class="anchor" id="a9f45a1734d12765f33f5f4dfd4b07528"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::contains" ref="a9f45a1734d12765f33f5f4dfd4b07528" args="(Tuple tup)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boolean <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a9f45a1734d12765f33f5f4dfd4b07528">ca.uqac.dim.ddb.Table.contains</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_tuple.html">Tuple</a>&#160;</td>
          <td class="paramname"><em>tup</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Determines if a relation contains a given tuple. Contrarily to the generic implementation of <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a9f45a1734d12765f33f5f4dfd4b07528">contains</a>, the method for instances of <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html">Table</a> <em>is</em> efficient, as it simply calls the contains method of the underlying list of tuples. It does not present the side effects (reset of enumeration) that the generic method has. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">tup</td><td>The tuple to look for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the tuple is present, false otherwise </dd></dl>

<p>Reimplemented from <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#a715a04546f0d7ce6b052605f4b610b43">ca.uqac.dim.ddb.Relation</a>.</p>

</div>
</div>
<a class="anchor" id="a9b9f6caa942ce0519f8ab1cb56a8b714"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::copy" ref="a9b9f6caa942ce0519f8ab1cb56a8b714" args="(Relation r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a9b9f6caa942ce0519f8ab1cb56a8b714">ca.uqac.dim.ddb.Table.copy</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html">Relation</a>&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Copies the contents of a relation into the current relation. In particular, invoking <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a9b9f6caa942ce0519f8ab1cb56a8b714">copy</a> with a query tree triggers the computation of that query and the storing of the resulting tuples into the current relation. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>The relation to copy from </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a00b4cbf2a0ad0193146cab525da238e8"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::getCardinality" ref="a00b4cbf2a0ad0193146cab525da238e8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a00b4cbf2a0ad0193146cab525da238e8">ca.uqac.dim.ddb.Table.getCardinality</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Computes the cardinality of a relation. Except for instances of <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html">Table</a> (which actually contain concrete tuples), calling this method will trigger the evaluation of the query tree and the enumeration of all tuples. It should be used sparingly. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of tuples in the relation </dd></dl>

<p>Reimplemented from <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#abd2598443bd841a3dff15951531c9e9d">ca.uqac.dim.ddb.Relation</a>.</p>

</div>
</div>
<a class="anchor" id="acb3ccfb19a86d19a52501d685a4e89d5"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::getName" ref="acb3ccfb19a86d19a52501d685a4e89d5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">String <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#acb3ccfb19a86d19a52501d685a4e89d5">ca.uqac.dim.ddb.Table.getName</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Gives the table's name </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The table's name </dd></dl>

</div>
</div>
<a class="anchor" id="a1f0d67156e7ca206c1fe2295626ee110"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::getSchema" ref="a1f0d67156e7ca206c1fe2295626ee110" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_schema.html">Schema</a> <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a1f0d67156e7ca206c1fe2295626ee110">ca.uqac.dim.ddb.Table.getSchema</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the relation's schema </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The schema </dd></dl>

<p>Implements <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#aef622fda44eb3c250098f1b03db5989a">ca.uqac.dim.ddb.Relation</a>.</p>

</div>
</div>
<a class="anchor" id="ab3c489022109249a7aade1128e2029a5"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::internalNext" ref="ab3c489022109249a7aade1128e2029a5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_tuple.html">Tuple</a> <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#ab3c489022109249a7aade1128e2029a5">ca.uqac.dim.ddb.Table.internalNext</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Method that must be implemented by every non-abstract relation; it returns the next tuple of the enumeration, if any. Methods <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#aec79ff9e41c1245b1a3a698b2d53762d">next</a> and <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#a3eb603ca0fb31e0dc36703359f7d24c9">hasNext</a> use the return value of <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#ab3c489022109249a7aade1128e2029a5">internalNext</a> and additionally remove any duplicate tuples from the output enumeration. Hence a call to <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#aec79ff9e41c1245b1a3a698b2d53762d">next</a> may result in multiple calls to the relation's <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#ab3c489022109249a7aade1128e2029a5">internalNext</a>, if the tuples returned are already part of the result (this is especially true of <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_projection.html">Projection</a>s. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The next tuple, <code>null</code> if no such tuple exists </dd></dl>

<p>Implements <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#a2a42a9a2f683f4adbd30b4978025c84b">ca.uqac.dim.ddb.Relation</a>.</p>

</div>
</div>
<a class="anchor" id="ab940367c81c807d67ae138c0506e1331"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::put" ref="ab940367c81c807d67ae138c0506e1331" args="(Tuple t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#ab940367c81c807d67ae138c0506e1331">ca.uqac.dim.ddb.Table.put</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_tuple.html">Tuple</a>&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Adds a new tuple to the table. It is assumed that the tuple's degree is equal to the schema's degree. An <em>assertion</em> fails otherwise (but no exception is raised). </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>The tuple to add </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa82a7c4bd9caed8ca77fb786bc20c167"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::remove" ref="aa82a7c4bd9caed8ca77fb786bc20c167" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#aa82a7c4bd9caed8ca77fb786bc20c167">ca.uqac.dim.ddb.Table.remove</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#a363487cf2656ea20b85e0c6ac2a30c12">ca.uqac.dim.ddb.Relation</a>.</p>

</div>
</div>
<a class="anchor" id="a57a8a7fdb3be3d0ec2fea534b4043548"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::reset" ref="a57a8a7fdb3be3d0ec2fea534b4043548" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a57a8a7fdb3be3d0ec2fea534b4043548">ca.uqac.dim.ddb.Table.reset</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Resets the enumeration of tuples, i.e. starts back at the first tuple of the relation. </p>

<p>Reimplemented from <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#abfa610a33e112f2ee8140bdf34a843ff">ca.uqac.dim.ddb.Relation</a>.</p>

</div>
</div>
<a class="anchor" id="a3026869a08310b7964bc17a70925758c"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::setName" ref="a3026869a08310b7964bc17a70925758c" args="(String name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a3026869a08310b7964bc17a70925758c">ca.uqac.dim.ddb.Table.setName</a> </td>
          <td>(</td>
          <td class="paramtype">String&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the table's name. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>The table's name </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8561aa22cd3f357b3de1af0d778ff942"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::tupleCount" ref="a8561aa22cd3f357b3de1af0d778ff942" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a8561aa22cd3f357b3de1af0d778ff942">ca.uqac.dim.ddb.Table.tupleCount</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the number of actual tuples present in the query. This number is different from the cardinality of the query; it counts the number of tuples that are present in the leaves of the query tree. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The tuple count </dd></dl>

<p>Implements <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_relation.html#a2497f0211ff973703b654dbae430d67d">ca.uqac.dim.ddb.Relation</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a9157f315005807e1d355e71488f7c9f9"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::m_cursor" ref="a9157f315005807e1d355e71488f7c9f9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a9157f315005807e1d355e71488f7c9f9">ca.uqac.dim.ddb.Table.m_cursor</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a52de849d32735588c66867eea01f1214"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::m_name" ref="a52de849d32735588c66867eea01f1214" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">String <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#a52de849d32735588c66867eea01f1214">ca.uqac.dim.ddb.Table.m_name</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aec20a839c2e544d0b09ad6fcb0e18d32"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::m_schema" ref="aec20a839c2e544d0b09ad6fcb0e18d32" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_schema.html">Schema</a> <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#aec20a839c2e544d0b09ad6fcb0e18d32">ca.uqac.dim.ddb.Table.m_schema</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abf9ac017a4f97f74750a8fd2fe2f7415"></a><!-- doxytag: member="ca::uqac::dim::ddb::Table::m_tuples" ref="abf9ac017a4f97f74750a8fd2fe2f7415" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">List&lt;<a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_tuple.html">Tuple</a>&gt; <a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html#abf9ac017a4f97f74750a8fd2fe2f7415">ca.uqac.dim.ddb.Table.m_tuples</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>Engin/src/ca/uqac/dim/ddb/<a class="el" href="_table_8java.html">Table.java</a></li>
</ul>
</div><!-- contents -->
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceca.html">ca</a>      </li>
      <li class="navelem"><a class="el" href="namespaceca_1_1uqac.html">uqac</a>      </li>
      <li class="navelem"><a class="el" href="namespaceca_1_1uqac_1_1dim.html">dim</a>      </li>
      <li class="navelem"><a class="el" href="namespaceca_1_1uqac_1_1dim_1_1ddb.html">ddb</a>      </li>
      <li class="navelem"><a class="el" href="classca_1_1uqac_1_1dim_1_1ddb_1_1_table.html">Table</a>      </li>

    <li class="footer">Generated on Thu Aug 30 2012 12:03:10 for Turtle DB by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
